package com.tools.web.interceptor.quota;

import com.tools.common.object.Note;

import java.lang.annotation.*;

/**
 * 配额限制注解，用于控制器上。限制业务成功的次数
 * */
@Target({ElementType.TYPE, ElementType.METHOD})
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Note("配额限制注解，用于控制器上。限制业务成功的次数")
public @interface QuotaLimit {

    @Note("根据此名称从 HttpServletRequest 域内取参数，作为 key 的唯一标识后缀")
    String name();

    @Note("接口的行为，与前缀 + name 的参数拼接作为 key")
    String action();

    @Note("允许成功多少次")
    int allow();

    @Note("限额错误状态码")
    int code() default 0;

    @Note("限额错误信息")
    String msg() default "";

    @Note("没有参数错误状态码")
    int nCode() default 0;

    @Note("没有参数错误信息")
    String nMsg() default "";
}
